package com.fafica.entidades;

import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.FetchType;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;
import javax.persistence.JoinColumn;
import javax.persistence.ManyToOne;
import javax.persistence.OneToOne;

import org.hibernate.annotations.Cascade;
import org.hibernate.annotations.CascadeType;
import org.hibernate.annotations.Fetch;
import org.hibernate.annotations.FetchMode;

@Entity (name="artigo")
public class Artigo {

	@GeneratedValue
	@Id
	private Long id;
	
	@ManyToOne(fetch = FetchType.EAGER)
	@Fetch(FetchMode.SELECT)
	@Cascade(CascadeType.SAVE_UPDATE)
	@JoinColumn(name = "id_autor")
	private Inscrito autor;
	
	@ManyToOne(fetch = FetchType.EAGER)
	@Fetch(FetchMode.SELECT)
	@Cascade(CascadeType.SAVE_UPDATE)
	@JoinColumn(name = "id_grupo_trabalho")
	private GrupoTrabalho grupoTrabalho;
	
	@ManyToOne(fetch = FetchType.EAGER)
	@Fetch(FetchMode.SELECT)
	@Cascade(CascadeType.SAVE_UPDATE)
	@JoinColumn(name = "id_co_autor1")
	private Inscrito co_autor1;
	
	@ManyToOne(fetch = FetchType.EAGER)
	@Fetch(FetchMode.SELECT)
	@Cascade(CascadeType.SAVE_UPDATE)
	@JoinColumn(name = "id_co_autor2")
	private Inscrito co_autor2;
	
	@Column(name = "arquivo", length = 200, nullable = true)
	private String arquivo;
	
	@Column(name = "tipo", length = 50, nullable = true)
	private String tipo;
	
	@Column(name = "area", length = 50, nullable = true)
	private String area;
	
	@Column(name = "situacao", length = 50, nullable = true)
	private String situacao;
	
	@Column(name = "resumo", length = 1000, nullable = true)
	private String resumo;
	
	@Column(name = "status", length = 20, nullable = true)
	private String status;
	
	
	public Long getId() {
		return id;
	}
	public void setId(Long id) {
		this.id = id;
	}
	public Inscrito getAutor() {
		return autor;
	}
	public void setAutor(Inscrito autor) {
		this.autor = autor;
	}
	public Inscrito getCo_autor1() {
		return co_autor1;
	}
	public void setCo_autor1(Inscrito co_autor1) {
		this.co_autor1 = co_autor1;
	}
	public Inscrito getCo_autor2() {
		return co_autor2;
	}
	public void setCo_autor2(Inscrito co_autor2) {
		this.co_autor2 = co_autor2;
	}
	public String getArquivo() {
		return arquivo;
	}
	public void setArquivo(String arquivo) {
		this.arquivo = arquivo;
	}
	public String getTipo() {
		return tipo;
	}
	public void setTipo(String tipo) {
		this.tipo = tipo;
	}
	public String getArea() {
		return area;
	}
	public void setArea(String area) {
		this.area = area;
	}
	public String getSituacao() {
		return situacao;
	}
	public void setSituacao(String situacao) {
		this.situacao = situacao;
	}
	public String getStatus() {
		return status;
	}
	public void setStatus(String status) {
		this.status = status;
	}
	public String getResumo() {
		return resumo;
	}
	public void setResumo(String resumo) {
		this.resumo = resumo;
	}
	public GrupoTrabalho getGrupoTrabalho() {
		return grupoTrabalho;
	}
	public void setGrupoTrabalho(GrupoTrabalho grupoTrabalho) {
		this.grupoTrabalho = grupoTrabalho;
	}
	
}
